import request from '@/utils/request'

/**
 * BasicProduct 产品基础数据 API 服务
 */
export const basicProductApi = {
  /**
   * 创建产品
   * @param {Object} productData - 产品数据
   * @returns {Promise} API响应
   */
  createProduct: (productData) => {
    return request.post('/basic-products/create', productData)
  },

  /**
   * 更新产品
   * @param {number} id - 产品ID
   * @param {Object} productData - 产品数据
   * @returns {Promise} API响应
   */
  updateProduct: (id, productData) => {
    return request.post(`/basic-products/modify`, productData)
  },

  /**
   * 删除产品
   * @param {number} id - 产品ID
   * @returns {Promise} API响应
   */
  deleteProduct: (id) => {
    return request.get(`/basic-products/del/${id}`)
  },

  /**
   * 根据ID获取产品
   * @param {number} id - 产品ID
   * @returns {Promise} API响应
   */
  getProductById: (id) => {
    return request.get(`/basic-products/${id}`)
  },

  /**
   * 获取所有产品
   * @returns {Promise} API响应
   */
  getAllProducts: () => {
    return request.get('/basic-products')
  },

  /**
   * 分页查询产品
   * @param {Object} params - 查询参数
   * @param {number} params.page - 页码
   * @param {number} params.size - 每页大小
   * @param {string} params.productId - 产品编号
   * @param {string} params.productName - 产品名称
   * @returns {Promise} API响应
   */
  getProductsPage: (params) => {
    return request.get('/basic-products/page', { params })
  },

  /**
   * 条件查询产品
   * @param {Object} searchParams - 搜索参数
   * @param {string} searchParams.productId - 产品编号
   * @param {string} searchParams.productName - 产品名称
   * @param {number} searchParams.page - 页码
   * @param {number} searchParams.size - 每页大小
   * @returns {Promise} API响应
   */
  searchProducts: (searchParams) => {
    return request.get('/api/basic-products/search', { params: searchParams })
  },

  /**
   * 查询当前租户的产品列表 (带搜索条件)
   * @param {Object} params - 查询参数
   * @param {string} params.productName - 产品名称
   * @param {string} params.productCode - 产品编号
   * @param {string} params.category - 产品类别
   * @param {string} params.priority - 优先级
   * @param {string} params.status - 状态
   * @returns {Promise} API响应
   */
  getProductsByCurrentTenant: (params = {}) => {
    return request.get('/basic-products/current-tenant', { params })
  }
}

export default basicProductApi
